#ifndef byte
typedef unsigned char byte;
#endif

struct BlockAndData
{
	int ID;
	int Data;

	BlockAndData(const int &id, const int &data) :
		ID(id),
		Data(data)
	{
	}

	bool operator==(const BlockAndData &obj) const
	{
		return ID == obj.ID && Data == obj.Data;
	}

	bool operator<(const BlockAndData &obj) const
	{
		return (ID < obj.ID) || ((ID == obj.ID) && (Data < obj.Data));
	}

	bool operator!=(const BlockAndData &obj) const
	{
		return !operator==(obj);
	}
};